#ifndef LOGIN_H
#define LOGIN_H


#include <QMainWindow>
#include <QApplication>
#include <QObject>

#include "widget.h"
#include "face.h"
//图像处理
#include <QPainter>
#include <QPainterPath>
#include <QPixmap>
#include <QMovie>
#include <QIcon>
//主类
#include <QWidget>
#include <QLabel>

// 事件
#include <QMouseEvent>
#include <QEvent>

// 数据库
#include <QSqlDatabase>  // 用于数据库连接
#include <QSqlQuery>     // 用于执行 SQL 查询
#include <QSqlError>     // 用于处理数据库操作错误
#include <QVariant>      // 用于处理查询结果
#include <QDebug>        // 用于调试信息输出

#include <QMessageBox>

namespace Ui {
class login;
}

class login : public QWidget
{
    Q_OBJECT

public:
         QLabel *background_main;


         // 数据库初始化
         void sql_init(QString Path);
         void on_Log_ing_user();
         void on_reg_user();

explicit login(QWidget *parent = nullptr);
         ~login();



private:
    // ===================== 数据库 成员 =====================
    QSqlDatabase db;  // 数据库连接
    QSqlQuery query;  // 查询对象
private slots:
         void on_Button_exit_clicked();

         void on_pushButton_2_clicked();

         void on_pushButton_1_clicked();

         void on_pushButton_clicked();

protected :
         // 鼠标拖动窗口功能
         void mousePressEvent(QMouseEvent *event) override {
             if (event->button() == Qt::LeftButton) {
                 isDragging = true;
                 dragStartPos = event->globalPos() - frameGeometry().topLeft();
                 event->accept();
             }
         }

         void mouseMoveEvent(QMouseEvent *event) override {
             if (isDragging && (event->buttons() & Qt::LeftButton)) {
                 move(event->globalPos() - dragStartPos);
                 event->accept();
             }
         }

         void mouseReleaseEvent(QMouseEvent *event) override {
             if (event->button() == Qt::LeftButton) {
                 isDragging = false;
                 event->accept();
             }
         }

         private:
             bool isDragging = false;   // 标志是否正在拖动
             QPoint dragStartPos;       // 记录拖动起始位置


private:
    Ui::login *ui;

signals:
   void log_in_yes(QString user);
};



void setCircularBackgroundWithTransparent(QLabel *label, const QPixmap &pixmap);







#endif // LOGIN_H
